#ifndef ARMBASEARMSTATE_H
#define ARMBASEARMSTATE_H

#include <iostream>
class ArmController;
namespace arm {

class FSM;
//class BaseDevice;
class BaseState
{
public:
    enum StateType{kSleepState,kPrepareState,kResetState,kWorkingState,kPauseState};
    BaseState();
    virtual ~BaseState();
    virtual StateType GetState()const=0;

    virtual void Update(FSM *fsm)=0;
    virtual void OnEntry(FSM *fsm)=0;
    virtual void OnExit(FSM *fsm)=0;
protected:
    const char *slave_names_[4];
};

}

#endif // BASEARMSTATE_H
